home *** CD-ROM | disk | FTP | other *** search
- document ::= prolog element misc* >XML Document
- prolog ::= xmlDecl? misc* (doctypedecl misc*)? >Document Prolog (XML Declaration + Document Type)
- xmlDecl$ ::= '<?xml' versionInfo encodingDecl? sdDecl? S? '?>' >XML Declaration (<?xml...?>)
- versionInfo$ ::= S 'version' Eq ( ( '"' VersionNum '"' ) | ( "'" VersionNum "'" ) ) >Version Info (version="1.0")
- VersionNum ::= ([a-zA-Z0-9_.:] | '-')+ >Version Number (1.0)
- encodingDecl$ ::= S 'encoding' Eq ( ( '"' EncName '"' ) | ( "'" EncName "'" ) ) >Encoding Declaration (encoding="...")
- EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')* >Encoding Name (UTF-8, ISO-8859-1, etc)
- sdDecl$ ::= S 'standalone' Eq (("'" SDValue "'") | ('"' SDValue '"')) >Standalone Declaration (standalone="...")
- SDValue ::= 'yes' | 'no' >'yes' or 'no'
- misc ::= comment | pi | S >Comment, Processing Instruction, or Whitespace
- doctypedecl$ ::= '<!DOCTYPE' S DocTypeName (S externalID)? S? ('[' dtdText? ']' S?)? '>' >Document Type Declaration (<!DOCTYPE...>)
- dtdText ::= (markupdecl | DocTypeText | S)+ >Markup Declaration or Parameter-entity Reference
- DocTypeName ::= Name >Document Type Name
- DocTypeText ::= PEReference+ >Parameter-entity Reference
- markupdecl ::= elementdecl | attlistDecl | entityDecl | notationDecl | pi | comment >Declaration for Element, Attribute List, Entity, or Notation
- element ::= emptyElemTag | realElemTag >Element (<Element>...)
- realElemTag$ ::= sTag content eTag { ElementName = ElementNameEnd } >Element (<Element>...)
- sTag ::= '<' ElementName (S attribute)* S? '>' >Element Start Tag (<Element>)
- attribute$ ::= AttName Eq attQValue >Attribute (attribute="value")
- Eq! ::= S? '=' S? >Equal sign ('=')
- eTag ::= '</' ElementNameEnd S? '>' >Element End Tag (</Element>)
- content$ ::= ( element | cdSect | pi | comment | TextData | S? )* >Element Content (Element | CData | Processing Instruction | Comment | Text Data | Whitespace)
- TextData ::= S* ( CharNoWhite | Reference ) ( CharData | Reference )* >Text Data
- emptyElemTag$ ::= '<' ElementName (S attribute)* S? '/>' >Empty Element (<Element/>)
- ElementName ::= Name >Element Name
- ElementNameEnd ::= Name >closing element name
- elementdecl$ ::= '<!ELEMENT' S ElementDeclName S ContentSpec S? '>' >Element Declaration (<!ELEMENT...>)
- ElementDeclName ::= NameOrPERef >Element Name
- ContentSpec ::= 'EMPTY' | 'ANY' | Mixed | children | PEReference >Element Content Specification ('EMPTY' | 'ANY' | Mixed | Children | PEReference)
- children ::= (choice | seq) ('?' | '*' | '+')? >Children (Choice | Sequence)
- choice ::= '(' S? cp ( S? '|' S? cp )* S? ')' >Choice ( a | b | c )
- cp ::= ( NameOrPERef | choice | seq) ('?' | '*' | '+')? >Name, PEReference, Choice, or Sequence
- seq ::= '(' S? cp ( S? ',' S? cp )* S? ')' >Sequence ( a , b , c )
- Mixed ::= ('(' S? '#PCDATA' (S? '|' S? NameOrPERef)* S? ')*') | ('(' S? '#PCDATA' S? ')') >Mixed (#PCDATA | Name | PEReference)
- attlistDecl$ ::= '<!ATTLIST' S AttlistName (S AttlistText)? S? '>' >Attribute List Declaration (<!ATTLIST...>)
- AttlistName ::= NameOrPERef >Attribute List Name
- AttlistText ::= AttDef (S AttDef)* >Attribute Definitions
- AttDef ::= ( ( Name S AttType S DefaultDecl ) | PEReference ) >Attribute Definition (Name Attribute-Type Default-Declaration)
- AttType ::= StringType | TokenizedType | EnumeratedType >Attribute-Type (String-Type | Tokenized-Type | Enumerated-Type)
- StringType ::= 'CDATA' >String-Type (CDATA)
- TokenizedType ::= 'IDREFS' | 'IDREF' | 'ID' | 'ENTITY' | 'ENTITIES' | 'NMTOKENS' | 'NMTOKEN' | PEReference >Tokenized-Type (IDREFS | IDREF | ID | ENTITY | ENTITIES | NMTOKEN | NMTOKENS | PEReference)
- EnumeratedType ::= NotationType | Enumeration >Enumerated-Type (Notation-Type | Enumeration)
- NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')' >Notation-Type ( NOTATION '(' Name | Name | ... ')' )
- Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')' >Enumeration ( '(' Nmtoken | Nmtoken | ... ')' )
- DefaultDecl ::= '#REQUIRED' | '#IMPLIED' | (('#FIXED' S)? attQValue) >Default-Declaration (#REQUIRED | #IMPLIED | #FIXED "value")
- Reference ::= EntityRef | CharRef >Reference (Entity-Reference | Character-Reference)
- CharRef ::= ('' [0-9]+ ';') | ('' [0-9a-fA-F]+ ';') >Character-Reference (Ù or ê)
- EntityRef ::= '&' Name ';' >Entity-Reference (&Entity;)
- NameOrPERef ::= Name | PEReference >Name or Parameter-entity Reference (%PE;)
- PEReference ::= '%' Name ';' >Parameter-entity Reference (%PE;)
- entityDecl ::= geDecl | peDecl >Entity Declaration (<!ENTITY...>)
- geDecl$ ::= '<!ENTITY' S GEName S GEDef S? '>' >Entity Declaration (<!ENTITY...>)
- peDecl$ ::= '<!ENTITY' S PEName S PEDef S? '>' >Entity Declaration (<!ENTITY...>)
- GEName ::= Name >Entity Name
- PEName ::= '%' S Name >Parameter-entity Name
- GEDef ::= EntityValue | (externalID NDataDecl?) >Entity Definition (Entity-Value | External-ID NData-Declaration)
- PEDef ::= EntityValue | externalID >Parameter-entity Definition (Entity-Value | External-ID)
- externalID$ ::= (ExtIDNameSys S ExtIDTextSys) | (ExtIDNamePub S ExtIDTextPub) >External-ID ('SYSTEM' System-Literal | 'PUBLIC' Pubid-Literal System-Literal)
- ExtIDNameSys ::= 'SYSTEM' >'SYSTEM'
- ExtIDTextSys ::= SystemLiteral >System-Literal
- ExtIDNamePub ::= 'PUBLIC' >'PUBLIC'
- ExtIDTextPub ::= PubidLiteral S SystemLiteral >Pubid-Literal System-Literal
- NDataDecl ::= S 'NDATA' S Name >NData-Declaration ('NDATA' Name)
- notationDecl$ ::= '<!NOTATION' S NotationName S NotationText S? '>' >Notation-Declaration (<!NOTATION...>)
- NotationName ::= NameOrPERef >Notation Name
- NotationText ::= externalID | PublicID >Extermal-ID or Public-ID
- PublicID ::= 'PUBLIC' S PubidLiteral >Public-ID ('PUBLIC' Pubid-Literal)
- S! ::= (#x20 | #x09 | #x0D | #x0A)+ >Whitespace (Blank, Tab, CR, LF)
- AttName ::= Name >Attribute Name
- Name ::= (Letter | '_' | ':') (NameChar)* >Name ( (Letter | '_' | ':') (Name-Character)* )
- NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' >Name-Character (Letter | Digit | '.' | '-' | '_' | ':')
- Nmtoken ::= NameChar+ >Nmtoken (Name-Character+)
- EntityValue ::= ('"' ([^%&"] | PEReference | Reference)* '"') | ("'" ([^%&'] | PEReference | Reference)* "'") >Quoted Entity-Value
- attQValue ::= ('"' AttValue1 '"') | ("'" AttValue2 "'") >Quoted Attribute Value ("value" | 'value')
- AttValue1 ::= ([^<&"] | Reference)* >Attribute Value
- AttValue2 ::= ([^<&'] | Reference)* >Attribute Value
- SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'") >System Literal
- PubidLiteral ::= ('"' PubidChar* '"') | ("'" (PubidCharNoQu)* "'") >Pubid Literal
- PubidChar! ::= #x20 | #x0D | #x0A | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%] >Pubid Character
- PubidCharNoQu! ::= #x20 | #x0D | #x0A | [a-zA-Z0-9] | [-()+,./:=?;!*#@$_%] >Pubid Character (no quotes)
- CharData ::= [^<&]* / ']]>' >Character Data
- CharNoWhite! ::= [^< #x09#x0D#x0A] >Character (may not contain Whitespaces)
- comment ::= '<!--' CommentText '-->' >Comment (<!-- Text -->)
- CommentText ::= (CharNoDash | ('-' CharNoDash))* >Comment Text (may not contain '--')
- CharNoDash! ::= #x09 | #x0A | #x0D | [#x20-#x2C] | [#x2E-#xFF] >Character (no dash)
- pi$ ::= '<?' PITarget (S PIData)? '?>' >Processing Instruction (<?pi...?>)
- PITarget ::= Name - 'xml' >Processing Instruction Name (may not be 'xml')
- PIData ::= Char* / '?>' >Processing Instruction Data
- Char! ::= #x09 | #x0A | #x0D | [#x20-#xFF] >Character
- cdSect ::= CDStart CData? CDEnd >CData Section (<![CDATA[...]]>)
- CDStart! ::= '<![CDATA[' >'<!CDATA['
- CData ::= Char* / ']]>' >Character Data
- CDEnd! ::= ']]>' >']]>'
- Digit! ::= [#x30-#x39] >Digit ([0-9])
- Letter! ::= [#x41-#x5A] | [#x61-#x7A] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#xFF] >Letter ([a-zA-Z], etc)
-